package studentinformationmanagementsystem.dao;

import studentinformationmanagementsystem.dao.BaseDao;
import studentinformationmanagementsystem.entity.Student;
import studentinformationmanagementsystem.entity.Teacher;

import java.util.List;

/**
 * @author 苗庆
 * @version 1.0
 */
public interface TeacherDao {

    /**
     * 对老师信息进行添加
     * @param teacher  老师对象
     * @return  受影响的记录行数
     */
    int insert(Teacher teacher);


    /**
     *  根据ID更新老师信息
     * @param teacher  老师对象
     * @return 受影响的记录行数
     */
    int update(Teacher teacher);

    /**
     *  根据ID删除老师
     * @param teacher 老师ID
     * @return 受影响的记录行数
     */
    int delete(Teacher teacher);


    /**
     * 查询所有老师信息
     * @return 所有用户信息
     */
    List<Teacher> queryAll(Teacher teacher);


    /**
     * 根据老师ID查询学生信息
     * @param teacher 老师ID
     * @return 老师信息
     */
    Teacher queryById(Teacher teacher);


    /**
     * 根据老师ID查询学生信息  不用考虑是否删除
     * @param teacher 老师ID
     * @return 老师信息
     */
    Teacher queryById01(Teacher teacher);


    /**
     * 根据教师工号即账号查询用户信息
     * @param teacher 教师工号
     * @return 教师信息
     */
    Teacher queryByUsername(Teacher teacher);

    /**
     * 根据教师工号即账号和密码查询用户信息
     * @param teacher 带有教师工号和密码的老师信息
     * @return 教师信息
     */
    Teacher queryByUsernameAndPassword(Teacher teacher);


    /**
     * 查询总记录条数
     */
    Integer queryForPageTotalCount();


    /**
     * 分页查询DAO层方法
     *
     * @param begin    起始记录行数
     * @param pageSize 每页展示数量
     * @return
     */
    List<Teacher> queryForPageItems(int begin, int pageSize);

}
